package com.atguigu.juc.day01.create;

import java.util.concurrent.TimeUnit;

/**
 * 操作方式：
 * 1、声明一个类继承 java.lang.Thread 类
 * 2、重写 run() 方法
 * 3、在 run() 方法中编写希望在新的线程中执行的代码
 * 4、创建 Thread 子类的对象
 * 5、调用 start() 方法启动多线程
 * 局限性：Java 是单继承的，如果继承了 Thread 类，就不能继承其它类。
 */
public class Demo01ExtendsThread {

    public static void main(String[] args) {
        Thread thread = new MyPrintTask();

        // ※要想开辟新的线程必须调用 start() 方法
        thread.start();

        // ※调用 run() 方法就会还在原来的线程中执行
        thread.run();
    }

}

class MyPrintTask extends Thread {

    @Override
    public void run() {
        // 每隔 1 秒打印当前线程名称
        while (true) {
            try {
                TimeUnit.SECONDS.sleep(1);

                System.out.println(Thread.currentThread().getName() + " is working.");

            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
}